1. Field of the Invention
This invention is in the field of electronic data processing systems, and more particularly in the field of apparatus which, with a minimum of intervention from the operating system of the data processing system transfers predetermined blocks of data from one location in the working store of the data processing system to a second location.
2. Description of the Prior Art
It has long been recognized that a significant gap exists in current storage hierarchies of computer systems between the access time of processor addressable memory which is measured in microseconds, for example, and mass storage access time, which is measured in milliseconds. Attempts to fill this gap with high speed rotating fixed head discs, or drums, has resulted in devices, the performance of which is only slightly better than that of movable head discs at costs which are considerably higher. Efforts to fill this gap with electronic devices, random access memories, such as core or solid state devices, produce access times similar to that obtained in main memory at equivalent costs, which makes such a solution uneconomical because of the large amount of storage required to significantly improve the throughput or performance of the computer system.
Large high speed data processors need either an extremely large processor addressable memory in order to reduce I/O activity to mass storage, or a fairly high speed random access electronic storage device of sufficient size to attract a large fraction of the I/O activity that would be directed to mass storage, primarily discs. Until recently the above identified solutions have been considered as the only alternatives for achieving desired system performance levels of large speed computers where I/O is the limiting factor. A recently developed third alternative is the use of electronic storage as a dynamic buffer, or I/O buffer, between mass storage devices and the working store of such a large high speed system.
A dynamic I/O buffer, or disc cache buffer, performs essentially the same function for disc storage devices as a cache located in the central processor does for main memory. At any given point in time, the disc cache will contain some portion of the currently active areas, or portions, of the data base. Like a cache of a processor, a disc cache buffer depends upon repetitive use of the data stored in the disc cache buffer to be effective.
In general, the mass sotrage address space would be divided into blocks of some fixed size. When an I/O operation is initiated to mass storage, a directory is first checked to see if the block being referenced, or addressed, is in the buffer; if it is not in the buffer, the reference block is brought into the disc cache buffer from mass storage replacing some other block if the buffer is full. The requested data is then delivered to the working store to complete the I/O operation.
To the applicant's knowledge, the implementation of an I/O buffer or disc cache buffer has been suggested and/or implemented as a software mechanism, or by appropriate programs, using standard software approaches to move the data from the I/O buffer to the working store or to permit a program to have access to the data in the I/O buffer. The problem with implementing such a requirement for moving data in memory from one location to another location, a memory to memory move, or transferring the access to a clock of I/O data from one program to another is the large amount of operating system overhead required by the data processing system which, of course, impacts the efficiency, or throughput, of the system. Permitting direct access to data sotred in the disc cache buffer in effect permits the use of such data only once if integrity of the data is to be maintained.
As far as the Applicant is aware, no one has endeavored to provide a hardware solution for executing a memory to memory move, which hardware is separate and distinct from that of the central processor of the data processing system, and which hardware is transparent to such operating system, or to state it another way, requires no modification of the operating system to use the disc cache buffer as a source of I/O data. The data mover has an autonomous address generating capability so that it can issue memory commands to fetch data from one location in working store, or memory, and store such data in another area while minimizing interference with the operation of the data processing system of which it is a part. An input/output processing system in which the data mover of the present invention is adapted to be incorporated and the data processing system of which the I/O processing system is a portion is disclosed in U.S. Pat. No. 4,017,839, which issued Apr. 12, 1977, and which is assigned to the same assignee as this invention.
In summary, the problem with the prior art implementations, or suggested implementations, of an I/O buffer is that all the control and movement of data has heretofore been done by software using the facilities available to the computer system as an entity. Such a solution increases the overhead of the system, where overhead is defined as those opertions of the computer to control the computer rather than to performing useful work for the users of the system. Increasing the overhead has the disadvantage of reducing the throughput of the data processing system, other factors remaining the same, and thus reduces the performance gains that theoretically can be achieved by the use of an I/O buffer.